想学会 Spring Boot 你必须深刻了解这些概念
1.0
前言
Spring Boot是一个难以理解的框架。在本文中,我们将了解Spring Boot的基础知识,并帮助您了解重要的概念-starter,自动配置和Parents。希望多多关注微信公众号:Felordcn
2.0
理解Spring Boot的架构
Spring Boot的构建基块是:
Spring Boot Starter
Spring Boot Starter Parent
Auto Configuration
我们将通过与Spring和Spring MVC进行比较来了解Spring Boot想要实现的目标。想了解了这一点,就应该从Spring Boot的构建基块入手。
3.0
Spring Boot并不与其他竞争
你必须要理解的是:Spring Boot并不与Spring、Spring MVC竞争。Spring Boot使得使用它们变得容易。
3.1
Spring Framework
它最重要的功能是依赖注入。所有Spring模块的核心是依赖注入或IOC(控制反转)。如果正确使用DI或IOC,我们可以开发松耦合的应用程序。松耦合的应用程序可以轻松地进行单元测试。
3.2
Spring MVC
Spring MVC提供了一种分离的方式来开发Web应用程序。通过使用Dispatcher Servlet,ModelAndView和View Resolver的特有简单概念,可以轻松开发Web应用程序。它是Spring框架在servlet web规范中的提现。
3.3
Spring Boot
Spring和Spring MVC的问题在于随着项目不断发展你需要维护大量各种各样诸如properties和xml类型的配置文件,bean描述文件。Spring Boot通过“约定大于配置”同时结合自动配置和入门项目解决了这个问题。Spring Boot还提供了一些功能,可以更快地构建可用于生产环境的应用程序。
4.0
Spring Boot自动配置
Spring和Spring MVC应用程序具有很多XML或Java Bean配置。每当开辟一些新的业务时你不得不增加你的配置。Spring Boot围绕这个痛点引入了新的思维过程:是否能让应用更加智能?当一个jar引入时能自动发现一些Spring Bean。
如果Hibernate JAR位于类路径中,如何自动配置数据源呢?
如果Spring MVC JAR位于类路径中,如何自动配置Dispatcher Servlet呢?
Spring Boot 针对一些常用的框架进行了一些可自动发现的默认配置,也是使用这些框架必须的基本配置。这就是自动配置(Auto Configuration)。
5.0
Spring Boot Starter
什么是Spring Boot Starter?starter就是是一组便捷的依赖项描述符,您可以在应用程序中引入它们,获得一站式使用其所需的所有Spring和其他相关技术, 而不必去手动引入各种相关的依赖项。同时也不必担心依赖冲突和不兼容的问题。就像你需要一台V12发动机,不是店家直接给予你所有必须的一堆零件,而是一整台发动机。你不必关心它依赖了什么,原理是什么,只关心它有什么用。
以下屏幕快照显示了将Spring Boot Start Web添加到项目的依赖项时添加到我们的应用程序中的不同依赖项。![8a3776a072265c67990d9b51cc4e7f83.png](en-resource://database/3343:1)
这是通常用于开发Web应用程序的各种组件。如果让你手动引入想想都头皮发麻。Spring Boot Starter Web将它们组合在一起以便于让你以非常简单的开启Spring MVC Web开发并使用以下特性:
Spring Bean、context\IOC、AOP
Web MVC — (Spring MVC)
Jackson — for JSON Binding
Validation — Hibernate Validator, Validation API
Embedded Servlet Container — Tomcat
Logging — logback, slf4j
Spring Boot 提供了很多有用的Starter,你可以在Spring Boot官网找到它们。当然你也可以自己写一个Starter,具体的教程可以通过我的公众号:Felordcn 获取。
6.0
Spring Boot Starter
所有Spring Boot项目通常在pom.xml中将spring-boot-starter-parent用作父项。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
Parent POM 提供了以下能力让你管理的应用:
配置 ——诸如 java版本和其他一些组件的默认配置
依赖管理 ——统一的依赖版本管理
默认的插件配置。
7.0
Spring Initializr
[Spring Initializr](http://start.spring.io/) 是Spring官方提供的极速构建Spring Boot项目的可视化引导工具。
它使您可以通过非常简单的UI创建各种基于Spring Boot的应用程序。您可以按需选择构建编程语言、工具、版本,功能、Starter组件,甚至可以通过web来预览你构建的项目。你也可以通过Intellij IDEA 、eclipse等IDE提供的Spring Initializr集成工具来快速方便地构建Spring Boot 项目。
8.0
嵌入式WEB服务器
Spring Boot 集成了嵌入式服务器,使得我们的应用可部署单元包含了服务器二进制文件。目前提供了以下嵌入式服务器:
Jetty
Tomcat
Undertow
个人推荐性能更加强大的Undertow。
9.0
Spring Data数据访问
Spring 还提供了数据访问一致的基于Spring编程模型,同时保留了基础数据存储的抽象类库集合,常用的模块有:
Spring Date JDBC
Spring Data JPA
Spring Data Redis
Spring Data MongoDB
Spring Data Elasticsearch
这些类库都提供相应的Starter组件,还有其他一些类库,可以去官方网站查询。
总结
通过以上的详细引导介绍,相信会让你对Spring Boot 有一个全面的认识。让你学习起来更加轻松。
● Java开发中商业计算请务必使用BigDecimal来进行计算!
● 彻底解决Spring mvc中时间类型的转换和序列化问题